{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 直接使用bos进行sft并进行评估\n",
    "\n",
    "<span style=\"font-size: 20px; font-weight: bold;\">注意：您使用该案例默认的数据和模型训练时，会产生一定费用。计费方式参考：https://cloud.baidu.com/doc/WENXINWORKSHOP/s/6lrk4bgxb</span>\n",
    "\n",
    "千帆Python SDK 现已支持直接使用bos进行训练，无需通过千帆平台中转。\n",
    "\n",
    "本文将基于qianfan==0.3.0展示通过bos进行sft训练，并使用微调后的模型进行评估。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "tags": [
     "cell_skip"
    ]
   },
   "outputs": [],
   "source": [
    "! pip install \"qianfan>=0.3.0\" -U"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 前置准备\n",
    "- 初始化千帆安全认证AK、SK"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os \n",
    "\n",
    "os.environ[\"QIANFAN_ACCESS_KEY\"] = \"your_ak\"\n",
    "os.environ[\"QIANFAN_SECRET_KEY\"] = \"your_sk\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据集加载\n",
    "\n",
    "千帆SDK提供了数据集实现帮助我们可以快速的加载本地的数据集到内存，并通过设定DataSource数据源以保存至本地\\千帆平台\\bos。"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从本地数据集上传到BOS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "tags": [
     "parameter_bos_bucket_name",
     "parameter_bos_bucket_file_path"
    ]
   },
   "outputs": [],
   "source": [
    "from qianfan.dataset import Dataset\n",
    "from qianfan.dataset.data_source import BosDataSource\n",
    "from qianfan.dataset.data_source.base import FormatType\n",
    "\n",
    "bos_bucket_name = \"your_bucket_name\"\n",
    "bos_bucket_file_path = \"test\"\n",
    "\n",
    "bds = BosDataSource(region=\"bj\", bucket=bos_bucket_name, bos_file_path=f\"/{bos_bucket_file_path}/train_data.jsonl\")\n",
    "\n",
    "ds = Dataset.load(data_file=\"./data/fin_cqa_train.jsonl\")\n",
    "ds.save(bds, should_overwrite_existed_file=True)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### LLMFinetune 训练\n",
    "`LLMFinetune` 实现了SFT逻辑的trainer，它内部组装了SFT所需要的基本`Pipeline`, 用于串联数据->训练->模型发布->服务调用等步骤"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "目前Dataset支持从bos读取数据，因此可以很方便的进行finetune。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[INFO] [02-01 17:59:41] bos.py:229 [t:139840090355520]: cache was outdated, start to update bos cache\n",
      "[INFO] [02-01 17:59:42] bos.py:243 [t:139840090355520]: ready to fetch a file from bos path: /data/train_data.jsonl in bucket sdk-test\n"
     ]
    }
   ],
   "source": [
    "from qianfan.trainer import LLMFinetune\n",
    "\n",
    "# 首先需要先加载测试数据集，这里以加载bos上的数据集为例子：\n",
    "# 使用bos训练有两种方法，一种是传入bos数据集，一种是直接传入bos路径，这里我们使用bos数据集为例\n",
    "\n",
    "bos_ds = Dataset.load(bds,file_format=FormatType.Jsonl)\n",
    "\n",
    "trainer = LLMFinetune(\n",
    "    train_type=\"ERNIE-Speed-8K\",\n",
    "    # dataset_bos_path=f\"bos:/{bos_bucket_name}/{bos_bucket_file_path}\",\n",
    "    dataset=bos_ds\n",
    ")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 运行任务\n",
    "同步运行trainer，训练直到模型发布完成"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[INFO] [02-01 17:59:51] actions.py:468 [t:139840090355520]: [train_action] fine-tune running... task_name:turbo_0725_S3GYG current status: RUNNING, 1% check train task log in https://console.bce.baidu.com/qianfan/train/sft/job-cyihskbbi7kg/task-qq8pj4txzjvq/detail/traininglog\n",
      "[INFO] [02-01 18:00:22] actions.py:468 [t:139840090355520]: [train_action] fine-tune running... task_name:turbo_0725_S3GYG current status: RUNNING, 1% check train task log in https://console.bce.baidu.com/qianfan/train/sft/job-cyihskbbi7kg/task-qq8pj4txzjvq/detail/traininglog\n",
      "[INFO] [02-01 18:00:52] actions.py:468 [t:139840090355520]: [train_action] fine-tune running... task_name:turbo_0725_S3GYG current status: RUNNING, 3% check train task log in https://console.bce.baidu.com/qianfan/train/sft/job-cyihskbbi7kg/task-qq8pj4txzjvq/detail/traininglog\n",
      "[INFO] [02-01 18:01:23] actions.py:468 [t:139840090355520]: [train_action] fine-tune running... task_name:turbo_0725_S3GYG current status: RUNNING, 3% check train task log in https://console.bce.baidu.com/qianfan/train/sft/job-cyihskbbi7kg/task-qq8pj4txzjvq/detail/traininglog\n"
     ]
    }
   ],
   "source": [
    "trainer.run()\n",
    "print(trainer.result)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "获取finetune任务输出："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'task_id': 19061,\n",
       "  'job_id': 11630,\n",
       "  'model_id': 'am-p02p43it6pqt',\n",
       "  'model_version_id': 'amv-vge90genq6ed',\n",
       "  'model': <qianfan.model.model.Model at 0x7fe0ea0f95e0>}]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trainer.result"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从训练结果中获取模型对象"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qianfan.model import Model\n",
    "\n",
    "m = trainer.result[0]['model']\n",
    "m.auto_complete_info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在完成模型的微调后，我们可以使用它来实现千帆平台评估任务：\n",
    "\n",
    "首先获取/创建千帆平台待评估的测试集："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "tags": [
     "random_qianfan_dataset_name"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import os\n",
    "from qianfan.dataset import Dataset\n",
    "from qianfan.dataset import (\n",
    "    DataTemplateType,\n",
    "    DataStorageType,\n",
    ")\n",
    "\n",
    "qianfan_dataset_name = \"random_fin_cqa_test\"\n",
    "\n",
    "qianfan_ds = Dataset.load(data_file=\"./data/fin_cqa_test.jsonl\")\n",
    "\n",
    "qianfan_ds = qianfan_ds.save(\n",
    "    qianfan_dataset_create_args={\n",
    "        \"name\": qianfan_dataset_name,\n",
    "        \"template_type\": DataTemplateType.NonSortedConversation,\n",
    "        \"storage_type\": DataStorageType.PrivateBos,\n",
    "        \"storage_id\": bos_bucket_name,\n",
    "        \"storage_path\": f'/{bos_bucket_file_path}',\n",
    "    },\n",
    "    does_release=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接着实例化评估器，分别是\n",
    "+ `QianfanRefereeEvaluator`: 千帆平台的裁判员评估器，使用大模型对被评估大模型的回答打分，可以自定打分 prompt，打分步骤等信息，需要app_id\n",
    "+ `QianfanRuleEvaluator`: 千帆平台的规则评估器，会根据评估结果计算出一系列统计指标\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "tags": [
     "parameter_user_app_id"
    ]
   },
   "outputs": [],
   "source": [
    "from qianfan.evaluation.evaluator import QianfanRefereeEvaluator, QianfanRuleEvaluator\n",
    "from qianfan.evaluation.consts import QianfanRefereeEvaluatorDefaultMetrics, QianfanRefereeEvaluatorDefaultSteps, QianfanRefereeEvaluatorDefaultMaxScore\n",
    "\n",
    "your_app_id = 1 # replace it with your qianfan app id\n",
    "\n",
    "qianfan_evaluators = [\n",
    "    QianfanRefereeEvaluator(\n",
    "        app_id=your_app_id,\n",
    "        prompt_metrics=QianfanRefereeEvaluatorDefaultMetrics,\n",
    "        prompt_steps=QianfanRefereeEvaluatorDefaultSteps,\n",
    "        prompt_max_score=QianfanRefereeEvaluatorDefaultMaxScore,\n",
    "    ),\n",
    "    QianfanRuleEvaluator(using_accuracy=True, using_similarity=True),\n",
    "]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过`EvaluationManager.eval`方法，我们可以将需要评估的`Model`以及`Dataset`传入，即可发起评估："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from qianfan.evaluation import EvaluationManager\n",
    "\n",
    "em = EvaluationManager(qianfan_evaluators=qianfan_evaluators)\n",
    "result = em.eval([m], qianfan_ds)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中其他自然灾害导致需求减少事件对应的原因涉及的地区是？风险因素:国内外因天气等自然灾害导致用肥量锐减', 'Completion（模型回答）': '很抱歉，文中没有提及下文中其他自然灾害导致需求减少事件对应的原因涉及的地区是。', 'Response（参考答案）': '国内外', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '2', '裁判员模型打分理由': '回答者给出了一个“很抱歉，文中没有提及”的回答，这表明他们确实在寻找与问题相关的信息，但未能找到。然而，由于这个答案并未提供任何关于问题所需的信息，因此评分为2。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致市场价格下降事件对应的结果涉及的产品是？在国际奶粉价格下降压力下,国内奶价仍有下降空间', 'Completion（模型回答）': '- 产品：奶粉', 'Response（参考答案）': '奶', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答的产品“奶粉”是正确的，因为问题中提到的“国际奶粉价格下降压力下”表明了涉及的产品是奶粉。同时，回答没有出现用词不当或与问题要求不符的情况，所以给出了4分的评分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致市场价格下降事件对应的结果涉及的产品是？但由于7-ACA市场价格大幅下跌，跌幅超过50%，导致公司相关原料药销售价格随之下跌', 'Completion（模型回答）': '- 产品：7-ACA', 'Response（参考答案）': '原料药', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '3', '裁判员模型打分理由': '回答者正确地识别了问题中的产品是“7-ACA”，并且正确地理解了由于市场价格下降导致市场价格下降事件。然而，答案没有明确指出这是原料药的一部分，虽然可以从上下文中推断出来，但不够明确。因此，基于对答案的理解和清晰度，我给出了3分的评分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致市场价格下降事件对应的结果涉及的地区是？在国际奶粉价格下降压力下,国内奶价仍有下降空间', 'Completion（模型回答）': '无法推理出具体涉及的地区。', 'Response（参考答案）': '国内', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '1', '裁判员模型打分理由': '回答中没有正确理解问题要求，未能指出市场价格下降涉及的地区是“国内”。尽管答案没有明显的用词不当，但它没有提供满足问题要求的信息，因此综合得分较低。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？风险因素:国内外因天气等自然灾害导致用肥量锐减', 'Completion（模型回答）': '没有因果事件可以返回。', 'Response（参考答案）': '其他自然灾害导致需求减少', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '1', '裁判员模型打分理由': '回答中没有指出任何因果事件，且与问题所要求的内容存在明显的偏差。问题中询问的是关于“国内外因天气等自然灾害导致用肥量锐减”的因果事件，而回答中并未涉及此点，因此，该回答并未符合问题的要求，评分应较低。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中供给减少导致市场价格提升事件对应的结果涉及的产品是？东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨', 'Completion（模型回答）': '下文中供给减少导致市场价格提升事件对应的结果涉及的产品是：\\n\\n* 原油价格大幅上涨', 'Response（参考答案）': '原油', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答明确指出“原油价格大幅上涨”，与标准答案一致，没有出现用词不当或理解错误的情况。同时，回答也严格遵照了题目的要求，没有出现答题方式、答题长度、答题格式等方面的问题。因此，综合水平较高，给出5分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致销量（消费）减少事件对应的原因涉及的产品是？而发改委分别在5月10日和6月9日对国内汽柴油价格进行了下调，汽油和柴油零售价格分别累计下调了860和820元/吨，导致石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价', 'Completion（模型回答）': '根据上下文描述，市场价格下降导致销量（消费）减少事件对应的原因涉及的产品是汽柴油。发改委在5月10日和6月9日对国内汽柴油价格进行了下调，导致石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价。因此，可以得出结论：汽柴油是导致市场价格下降导致销量（消费）减少事件对应的原因涉及的产品。', 'Response（参考答案）': '汽油,柴油', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中明确指出了汽柴油是导致市场价格下降导致销量（消费）减少事件对应的原因涉及的产品，并且与标准答案一致。同时，回答中还提供了发改委对汽柴油价格的下调时间，进一步证实了这一点。整体来看，回答准确、完整，没有出现用词不当或格式问题，因此综合得分评分为4分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中其他自然灾害导致需求减少事件对应的结果涉及的产品是？风险因素:国内外因天气等自然灾害导致用肥量锐减', 'Completion（模型回答）': '风险因素：国内外因天气等自然灾害导致用肥量锐减。\\n\\n- 产品：肥料', 'Response（参考答案）': '肥', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答者准确地识别出了风险因素中涉及的产品，即肥料，并且没有出现用词不当或格式错误的情况。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中供给增加导致负向影响事件对应的原因涉及的产品是？南美大豆供求宽松对豆类油脂价格利空', 'Completion（模型回答）': '豆类油脂产品。', 'Response（参考答案）': '大豆', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中提到的“豆类油脂产品”是符合题目要求的，因为问题中提到的“南美大豆供求宽松对豆类油脂价格利空”，其中的“豆类油脂”就是涉及的产品。虽然答案没有直接提到“大豆”，但“豆类油脂”中包含了大豆，并且与题目中关于大豆的供求和价格变动相关，因此这个回答是合理的。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨', 'Completion（模型回答）': '因果事件：\\n- 东南亚棕榈油减产：原油价格大幅上涨', 'Response（参考答案）': '供给减少导致市场价格提升', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '你的答案中确实找出了东南亚棕榈油减产和原油价格大幅上涨之间的因果关系，符合题目要求。不过，你的答案中出现了重复，可能影响了你的综合得分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？南美大豆供求宽松对豆类油脂价格利空', 'Completion（模型回答）': '因果事件：\\n- 供求宽松：南美大豆供求宽松\\n- 价格：豆类油脂价格\\n\\n因此，因果事件可以表示为：南美大豆供求宽松对豆类油脂价格利空。', 'Response（参考答案）': '供给增加导致负向影响', 'BLEU-4': '0.00%', 'ROUGE-1': '0.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '0.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中准确地识别了因果事件，即“南美大豆供求宽松”和“豆类油脂价格”，并正确地解释了南美大豆供求宽松对豆类油脂价格的影响是负面的。答案也符合了题目的要求，包括答题方式、答题长度、答题格式等。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致销量（消费）减少事件对应的结果涉及的产品是？而发改委分别在5月10日和6月9日对国内汽柴油价格进行了下调，汽油和柴油零售价格分别累计下调了860和820元/吨，导致石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价', 'Completion（模型回答）': '结果：\\n- 产品：成品油\\n\\n事件：\\n- 发生时间：5月10日、6月9日\\n- 降价主体：发改委\\n- 降价对象：国内汽柴油价格\\n- 降价幅度：860元/吨、820元/吨\\n- 影响：石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价', 'Response（参考答案）': '成品油', 'BLEU-4': '0.43%', 'ROUGE-1': '4.08%', 'ROUGE-2': '0.00%', 'ROUGE-L': '2.82%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中明确指出了产品是“成品油”，这与标准答案相符。同时，答案还详细描述了事件的发生时间、降价主体、降价对象和降价幅度，以及这些事件对石化双雄的影响，这些都是符合题目要求的。虽然答案没有严格按照提供的评分指标来回答，但考虑到其完整性和准确性，给予4分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？利润和每股收益大幅下降的主要原因是煤炭价格大幅上涨，导致公司投资的火电企业的煤炭成本大幅增加###但报告期内受煤炭行业去产能改革的影响，公司煤炭前三季度平均采购价格同比上涨44.53%，导致成本涨幅抵消了销售价格的涨幅', 'Completion（模型回答）': '因果事件：\\n- 因果事件：煤炭价格大幅上涨\\n\\t- 原因：利润和每股收益大幅下降\\n\\t- 原因：公司投资的火电企业的煤炭成本大幅增加\\n- 因果事件：煤炭行业去产能改革\\n\\t- 原因：公司煤炭前三季度平均采购价格同比上涨44.53%\\n\\t- 原因：成本涨幅抵消了销售价格的涨幅', 'Response（参考答案）': '市场价格提升导致运营成本提升', 'BLEU-4': '0.54%', 'ROUGE-1': '9.76%', 'ROUGE-2': '0.00%', 'ROUGE-L': '5.63%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答中准确地列出了因果事件，并进行了详细的解释。同时，回答没有出现用词不当或格式错误的情况，完全符合题目的要求。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？而发改委分别在5月10日和6月9日对国内汽柴油价格进行了下调，汽油和柴油零售价格分别累计下调了860和820元/吨，导致石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价', 'Completion（模型回答）': '因果事件：\\n- 原因：发改委分别在5月10日和6月9日对国内汽柴油价格进行了下调\\n- 结果：汽油和柴油零售价格分别累计下调了860和820元/吨，导致石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价', 'Response（参考答案）': '市场价格下降导致销量（消费）减少', 'BLEU-4': '0.70%', 'ROUGE-1': '9.68%', 'ROUGE-2': '0.00%', 'ROUGE-L': '8.33%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中准确地列出了因果事件，并且详细描述了发改委对汽柴油价格的下调，以及该措施对石化双雄造成的影响。答案没有出现用词不当或理解错误，并且严格遵循了题目的要求。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？随着供应缩减，需求回升，高碳铬铁价格企稳回升，预期短期内或仍维持偏强态势，但高碳铬铁产能依然偏向过剩，后期价格弹升空间有限', 'Completion（模型回答）': '因果事件：\\n- 供应缩减：高碳铬铁价格企稳回升\\n- 需求回升：高碳铬铁价格企稳回升\\n- 高碳铬铁价格企稳回升：供应缩减、需求回升\\n- 产能过剩：高碳铬铁价格弹升空间有限', 'Response（参考答案）': '需求增加导致市场价格提升', 'BLEU-4': '0.85%', 'ROUGE-1': '16.67%', 'ROUGE-2': '0.00%', 'ROUGE-L': '8.16%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中准确地识别出了文中的因果关系，包括供应缩减和需求回升导致高碳铬铁价格企稳回升，以及高碳铬铁产能过剩导致价格弹升空间有限。此外，答案的组织结构清晰，语言表述准确，没有出现用词不当的情况。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格提升导致运营成本提升事件对应的结果涉及的产品是？利润和每股收益大幅下降的主要原因是煤炭价格大幅上涨，导致公司投资的火电企业的煤炭成本大幅增加###但报告期内受煤炭行业去产能改革的影响，公司煤炭前三季度平均采购价格同比上涨44.53%，导致成本涨幅抵消了销售价格的涨幅', 'Completion（模型回答）': '- 产品：煤炭\\n- 利润和每股收益大幅下降的主要原因是：煤炭价格大幅上涨，导致公司投资的火电企业的煤炭成本大幅增加', 'Response（参考答案）': '煤炭', 'BLEU-4': '1.06%', 'ROUGE-1': '8.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '6.06%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答完全符合题目的要求，准确地识别出了问题中提到的产品，并且清晰地解释了利润和每股收益大幅下降的主要原因。此外，答案也符合了评分模版中的各项要求，包括格式、长度和格式等。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中供给增加导致负向影响事件对应的原因涉及的地区是？南美大豆供求宽松对豆类油脂价格利空', 'Completion（模型回答）': '南美大豆供求宽松对豆类油脂价格利空，这是因为南美大豆供应增加，导致全球大豆供应过剩，从而对豆类油脂价格产生负面影响。', 'Response（参考答案）': '南美', 'BLEU-4': '1.20%', 'ROUGE-1': '9.09%', 'ROUGE-2': '0.00%', 'ROUGE-L': '6.25%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中详细解释了南美大豆供应增加导致全球大豆供应过剩，从而对豆类油脂价格产生负面影响的原因，符合题目的要求，并且用词恰当，没有明显的格式或长度问题。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格提升导致运营成本提升事件对应的原因涉及的行业是？利润和每股收益大幅下降的主要原因是煤炭价格大幅上涨，导致公司投资的火电企业的煤炭成本大幅增加###但报告期内受煤炭行业去产能改革的影响，公司煤炭前三季度平均采购价格同比上涨44.53%，导致成本涨幅抵消了销售价格的涨幅', 'Completion（模型回答）': '根据上文描述，煤炭价格大幅上涨是导致公司投资的火电企业的煤炭成本大幅增加的原因，因此涉及的行业是煤炭行业。', 'Response（参考答案）': '以上内容暂无说明。', 'BLEU-4': '1.24%', 'ROUGE-1': '7.14%', 'ROUGE-2': '0.00%', 'ROUGE-L': '5.71%', '裁判员模型打分': '3', '裁判员模型打分理由': '回答中准确地指出了涉及的行业是煤炭行业，并解释了煤炭价格大幅上涨导致公司投资的火电企业的煤炭成本大幅增加。虽然答案没有提及到火电行业，但仍然满足了题目的要求。因此，我给予这个回答3分的评分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致销量（消费）减少事件对应的结果涉及的地区是？而发改委分别在5月10日和6月9日对国内汽柴油价格进行了下调，汽油和柴油零售价格分别累计下调了860和820元/吨，导致石化双雄（尤其是中石化）不仅炼油损逐月扩大、成品油销售受阻并且出现库存跌价', 'Completion（模型回答）': '结果涉及的地区是石化双雄（尤其是中石化）的炼油损逐月扩大、成品油销售受阻并且出现库存跌价。', 'Response（参考答案）': '从以上文本中我们暂无发现。', 'BLEU-4': '1.44%', 'ROUGE-1': '6.25%', 'ROUGE-2': '0.00%', 'ROUGE-L': '5.88%', '裁判员模型打分': '2', '裁判员模型打分理由': '回答中没有提及结果涉及的地区，而是列举了中石化炼油损逐月扩大、成品油销售受阻并且出现库存跌价的情况，这些情况属于结果而非地区。因此，回答没有完全符合问题的要求，评分2。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？但由于7-ACA市场价格大幅下跌，跌幅超过50%，导致公司相关原料药销售价格随之下跌', 'Completion（模型回答）': '因果事件：\\n- 原因：7-ACA市场价格大幅下跌\\n- 结果：公司相关原料药销售价格随之下跌', 'Response（参考答案）': '市场价格下降导致市场价格下降', 'BLEU-4': '1.44%', 'ROUGE-1': '10.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '7.41%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中准确地识别了问题中的因果关系，即7-ACA市场价格的大幅下跌导致公司相关原料药销售价格的下跌。同时，答案简洁明了，没有冗余或无关的信息。因此，我认为这个回答应该得到4分的评分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中需求增加导致市场价格提升事件对应的原因涉及的行业是？随着供应缩减，需求回升，高碳铬铁价格企稳回升，预期短期内或仍维持偏强态势，但高碳铬铁产能依然偏向过剩，后期价格弹升空间有限', 'Completion（模型回答）': '根据提供的信息，需求回升是导致高碳铬铁价格企稳回升的原因。因此，可以推断出该事件涉及的行业是钢铁行业。', 'Response（参考答案）': '我们无法得知，可能需要更多内容说明。', 'BLEU-4': '1.53%', 'ROUGE-1': '11.76%', 'ROUGE-2': '0.00%', 'ROUGE-L': '10.00%', '裁判员模型打分': '2', '裁判员模型打分理由': '虽然答案提到需求回升是导致高碳铬铁价格企稳回升的原因，但并未考虑到高碳铬铁产能依然偏向过剩这一因素，这是一个重要的限制条件，对于市场价格的影响也是不容忽视的。因此，这个答案虽然部分正确，但并未完全捕捉到问题中的所有重要信息，故得分为2。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中其他自然灾害导致需求减少事件对应的原因涉及的产品是？风险因素:国内外因天气等自然灾害导致用肥量锐减', 'Completion（模型回答）': '很抱歉，文中没有提及下文中其他自然灾害导致需求减少事件对应的原因涉及的产品。', 'Response（参考答案）': '以上内容暂无说明。', 'BLEU-4': '1.82%', 'ROUGE-1': '8.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '7.69%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答中准确地指出了问题中提到的“其他自然灾害导致需求减少事件对应的原因涉及的产品”，并明确表示“文中没有提及”。这是一个准确、全面且符合问题要求的回答。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中供给增加导致负向影响事件对应的结果涉及的产品是？南美大豆供求宽松对豆类油脂价格利空', 'Completion（模型回答）': '豆类油脂产品。\\n\\n题干中提到南美大豆供求宽松对豆类油脂价格产生负向影响，因此可以推断出该事件涉及的产品是豆类油脂产品。', 'Response（参考答案）': '豆类油脂', 'BLEU-4': '2.11%', 'ROUGE-1': '13.79%', 'ROUGE-2': '6.45%', 'ROUGE-L': '10.81%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答者正确地指出了涉及的产品是“豆类油脂”，与标准答案一致。并且答案简洁明了，没有冗余信息。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中供给减少导致市场价格提升事件对应的原因涉及的地区是？东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨', 'Completion（模型回答）': '东南亚棕榈油减产是导致原油价格大幅上涨的原因，因此涉及的地区是东南亚。', 'Response（参考答案）': '东南亚', 'BLEU-4': '2.15%', 'ROUGE-1': '12.50%', 'ROUGE-2': '0.00%', 'ROUGE-L': '10.53%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答完全符合问题的要求，明确指出“东南亚棕榈油减产是导致原油价格大幅上涨的原因”，并明确指出涉及的地区是东南亚，与标准答案完全一致。没有出现用词不当或偏离主题的情况，因此我给出5分的最高分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致市场价格下降事件对应的结果涉及的行业是？但由于7-ACA市场价格大幅下跌，跌幅超过50%，导致公司相关原料药销售价格随之下跌', 'Completion（模型回答）': '由于7-ACA市场价格大幅下跌，跌幅超过50%，导致公司相关原料药销售价格随之下跌。', 'Response（参考答案）': '暂不清楚，需要更多信息说明。', 'BLEU-4': '2.16%', 'ROUGE-1': '13.79%', 'ROUGE-2': '0.00%', 'ROUGE-L': '12.90%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中提到了由于7-ACA市场价格大幅下跌，跌幅超过50%，导致公司相关原料药销售价格随之下跌。这与问题中询问的“市场价格下降导致市场价格下降事件对应的结果涉及的行业是？”相关，但答案并没有直接指出涉及的行业是什么，而是描述了一个因果关系。尽管如此，考虑到答案给出了相关的因果链，且与问题有一定关联，因此给予4分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中供给减少导致市场价格提升事件对应的原因涉及的产品是？东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产，原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨###东南亚棕榈油减产,原油价格大幅上涨', 'Completion（模型回答）': '根据所提供的信息，事件的原因涉及产品是“棕榈油”。', 'Response（参考答案）': '棕榈油', 'BLEU-4': '2.45%', 'ROUGE-1': '12.50%', 'ROUGE-2': '0.00%', 'ROUGE-L': '11.76%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答者正确地识别了问题中提到的产品是“棕榈油”，这与标准答案一致。此外，答案的表达清晰，没有使用不适当的词汇或格式，完全符合题目的要求。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中有哪些因果事件？寒潮导致农产品价格继续攀升', 'Completion（模型回答）': '因果事件：\\n- 原因：寒潮\\n- 结果：农产品价格继续攀升', 'Response（参考答案）': '寒潮导致市场价格提升', 'BLEU-4': '2.55%', 'ROUGE-1': '25.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '21.05%', '裁判员模型打分': '4', '裁判员模型打分理由': '答案中明确指出了寒潮是导致农产品价格继续攀升的原因，并且也指出了这一因果关系的结果。答案的表述简洁明了，没有用词不当或遗漏关键信息。同时，答案也严格遵照了题目的要求，没有偏离问题的主题。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格提升导致运营成本提升事件对应的原因涉及的产品是？利润和每股收益大幅下降的主要原因是煤炭价格大幅上涨，导致公司投资的火电企业的煤炭成本大幅增加###但报告期内受煤炭行业去产能改革的影响，公司煤炭前三季度平均采购价格同比上涨44.53%，导致成本涨幅抵消了销售价格的涨幅', 'Completion（模型回答）': '- 产品：煤炭\\n- 原因：煤炭价格大幅上涨', 'Response（参考答案）': '煤炭', 'BLEU-4': '2.84%', 'ROUGE-1': '22.22%', 'ROUGE-2': '0.00%', 'ROUGE-L': '16.67%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答中明确提到了产品是煤炭，并且详细解释了导致运营成本提升的原因是煤炭价格的大幅上涨。这与标准答案的内容一致，同时也没有出现用词不当或偏离题目要求的情况。因此，我给予这个回答4分的评分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中需求增加导致市场价格提升事件对应的结果涉及的产品是？随着供应缩减，需求回升，高碳铬铁价格企稳回升，预期短期内或仍维持偏强态势，但高碳铬铁产能依然偏向过剩，后期价格弹升空间有限', 'Completion（模型回答）': '下文中需求增加导致市场价格提升事件对应的结果涉及的产品是高碳铬铁。', 'Response（参考答案）': '高碳铬铁', 'BLEU-4': '4.05%', 'ROUGE-1': '20.00%', 'ROUGE-2': '10.53%', 'ROUGE-L': '19.05%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答者准确地指出了问题中涉及的产品是高碳铬铁，没有出现用词不当或偏离题目要求的情况。答案简洁明了，没有冗余信息。因此，根据评分标准，我给出一个较高的评分4分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中需求增加导致市场价格提升事件对应的原因涉及的产品是？随着供应缩减，需求回升，高碳铬铁价格企稳回升，预期短期内或仍维持偏强态势，但高碳铬铁产能依然偏向过剩，后期价格弹升空间有限', 'Completion（模型回答）': '根据上下文，需求增加导致市场价格上涨的事件涉及的产品是高碳铬铁。', 'Response（参考答案）': '高碳铬铁', 'BLEU-4': '4.57%', 'ROUGE-1': '22.22%', 'ROUGE-2': '11.76%', 'ROUGE-L': '21.05%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答明确指出需求增加导致市场价格上涨事件涉及的产品是高碳铬铁，并且准确地指出了这一点，符合问题的要求。同时，答案没有出现用词不当或表述不清的情况，表达清晰，易于理解。因此，综合以上因素，我给出一个较高的评分4分。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中寒潮导致市场价格提升事件对应的结果涉及的产品是？寒潮导致农产品价格继续攀升', 'Completion（模型回答）': '产品：农产品', 'Response（参考答案）': '农产品', 'BLEU-4': '22.59%', 'ROUGE-1': '50.00%', 'ROUGE-2': '0.00%', 'ROUGE-L': '50.00%', '裁判员模型打分': '4', '裁判员模型打分理由': '回答“产品：农产品”明确指出了问题中提到的“寒潮导致农产品价格继续攀升”中的产品，即农产品。答案简洁明了，完全符合题目的要求。'}, {'模型名称': 'm_19061_11630', '模型版本': 'V1', 'Prompt': '下文中市场价格下降导致市场价格下降事件对应的原因涉及的产品是？但由于7-ACA市场价格大幅下跌，跌幅超过50%，导致公司相关原料药销售价格随之下跌', 'Completion（模型回答）': '产品：7-ACA。', 'Response（参考答案）': '7-ACA', 'BLEU-4': '30.21%', 'ROUGE-1': '66.67%', 'ROUGE-2': '57.14%', 'ROUGE-L': '66.67%', '裁判员模型打分': '5', '裁判员模型打分理由': '回答中准确地指出了产品为7-ACA，并且没有出现用词不当的情况。答案与标准答案含义相似，完全符合题目的要求。'}]\n"
     ]
    }
   ],
   "source": [
    "print(result.result_dataset.list())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "58f7cb64c3a06383b7f18d2a11305edccbad427293a2b4afa7abe8bfc810d4bb"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
